import type { Language } from './common'

export interface JSCallAndroid {
  /**
   * 注册
   */
  onRegister: () => void

  /**
   * 登录
   */
  onLogin: () => void

  /**
   * 充值
   */
  onRecharge: () => void

  /**
   * 返回
   */
  onBack: () => void

  /**
   * 返回指定界面
   *
   * @param name 界面名称
   */
  onBackActivity: (name?: string) => void

  /**
   * 返回指定界面
   *
   * @param name 界面名称
   */
  onBackActivityWithParams: (name?: string, params?: string) => void

  /**
   * 去聊天
   */
  onZopimChat: () => void

  // /**
  //  * 分享
  //  *
  //  * @param url 分享地址
  //  */
  // onShare: (url: string) => void

  /**
   * 分享
   *
   * @param title 分享标题
   * @param url   分享地址
   */
  onShare: (title: string, url: string) => void

  /**
   * 获取用户token
   * */
  getToken: () => string

  /**
   * 获取当前语言
   * */
  getLanguage: () => Language

  /**
   * 获取package-id
   * */
  getPackageId: () => string

  /**
   * 刷新页面
   * */
  refreshPage: () => void

  /**
   * 关闭当前页面
   * */
  finishPage: () => void

  /**
   * 设置title
   * */
  setTitle: (title: string) => void

  /**
   * 右上角按钮
   * @param btnText 按钮文本
   * @param title 目标网页标题
   * @param url 目标网页地址
   * @param needHeader 是否需要添加header
   * */
  setRightTitleBtn: (
    btnText: string,
    title: string,
    url: string,
    needHeader: boolean
  ) => void

  /**
   * 返回字符串
   * */
  setResultstring: (text: string) => void

  /**
   * 打开app，传入包名，返回成功或者失败
   * */
  openApp: (packageName: string) => boolean

  // 检查app是否安装，传入包名，返回是否安装
  checkApp: (packageName: string) => boolean

  // 这个方法返回 true 则为页面自行接管返回操作 返回其他值由安卓这边接管
  onBackPressed: () => boolean

  // 隐藏工具栏
  hideToolbar: () => number

  // 获取屏幕宽度
  getScreenWidth: () => number

  // 万能方法
  jump: (url: string) => void
}
